package TreeSet;

import java.util.*;
class student implements Comparable{
    String name;
    int age;
    student(String name, int age){
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return name+" "+age;
    }

    @Override
    public int compareTo(Object o) {
        student stu = (student) o;
        if(this.age-stu.age > 0){
            return 1;
        }
        if(this.age-stu.age == 0){
            return this.name.compareTo(stu.name);
        }
        return -1;
    }
}
// 需求：存储自定义对象并遍历Student(name,age)，并按照姓名的长度排序
//         * TreeSet集合保证元素排序和唯一性的原理
//         * 唯一性：是根据比较的返回是否是0来决定。
//         * 排序：
//         A:自然排序(元素具备比较性)
//         让元素所属的类实现自然排序接口 Comparable
//         B:比较器排序(集合具备比较性)
//         让集合的构造方法接收一个比较器接口的子类对象 Comparator

public class Test {
    public static void main(String[] args) {
        TreeSet ts = new TreeSet();
        student s1 = new student("zhangsan",14);
        student s2 = new student("lisi",16);
        student s3 = new student("wangwu",16);
        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        System.out.println(ts);
    }
}
